package com.wp.template.general;

/**
 * 测试类 - 演示模板方法模式的使用
 *
 * @Date 2025/11/23
 * @Author wangpeng
 * @Description 模板方法模式测试类
 */
public class Test {
    public static void main(String[] args) {
        System.out.println("模板方法模式测试开始\n");

        // 测试ConcreteClassA
        System.out.println("【测试ConcreteClassA】");
        AbstractClass classA = new ConcreteClassA();
        classA.templateMethod();

        // 测试ConcreteClassB
        System.out.println("【测试ConcreteClassB】");
        AbstractClass classB = new ConcreteClassB();
        classB.templateMethod();

        // 测试抽象类本身（如果需要）
        System.out.println("【测试AbstractClass默认实现】");
        AbstractClass abstractClass = new AbstractClass() {
            // 匿名内部类，使用所有默认实现
        };
        abstractClass.templateMethod();

        System.out.println("模板方法模式测试结束");
    }
}

/*
public class Test {
    public static void main(String[] args) {
        AbstractClass abc = new ConcreteClassA();
        abc.templateMethod();
        abc = new ConcreteClassB();
        abc.templateMethod();
    }
}
*/
